package com.jml.springmvc.servlet007.config;

import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class WebInitializer implements WebApplicationInitializer {
	
	@Override
	public void onStartup(javax.servlet.ServletContext servletContext) throws ServletException {
		//AnnotationConfigApplicationContext
		// 1.启动SpringMVC 容器 类注入到Spring中
		AnnotationConfigWebApplicationContext app = new AnnotationConfigWebApplicationContext();// 启动SpringMVC Web
		// 2.注入我们的spring mvc 的配置文件
		app.register(SpringMvcConfig.class);
		// 3. 将我们的DispatcherServlet 注入到 serlvet容器中
		ServletRegistration.Dynamic dynamic =
				servletContext.addServlet("dispatcher", new DispatcherServlet(app));
		// 4.填写url路径映射
		dynamic.addMapping("/");
		dynamic.setLoadOnStartup(1);// 优先级最高表示 最早被加载
		dynamic.setAsyncSupported(true); // 开启SpringMVC异步
	}
	// 基本配置已经ok呢？ web.xml ？ 使用WebApplicationInitializer 替代web.xml
	//为什么这个类WebInitializer不需要注解呢？ 能够自动的找到该类呢、
}
